package
{
	import collection.DataCollection;
	
	import com.common.displayObjects.Application;
	import com.common.queueloader.QueueLoader;
	import com.common.queueloader.QueueLoaderEvent;
	import com.common.queueloader.QueueVo;
	
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageQuality;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.geom.Utils3D;
	import flash.system.ApplicationDomain;
	
	[SWF (width="800", height="600", backgroundColor="0xcccccc", frameRate="60")]
	public class Main extends Sprite
	{
//		游戏参考：http://www.gomsee.com/game_detail.html?game_id=54&category=2&tm1=
//		
//		一．游戏类型
//		类似吃豆豆游戏的模式
//		
//		二．游戏方式
//		控制角色上下左右移动 避免被魔王吃掉，收集完所有任务物品之后过关、
//		
//		三．关卡数量
//		共两关 
//		
//		四．道具设定
//		该游戏只有一种道具，每关随机出现在游戏地图的指定位置，角色移动到道具上即自动拾取并使用道具，效果为所有怪物被冰冻5秒，在冰冻期间，被角色碰到即死亡
//		
//		五．胜利，失败判定
//		在规定时间内（3分钟）收集完所有任务物品之后 游戏过关，如果在移动过程中碰到怪物或是3分钟内仍然未收集完任务物品则失败，游戏重新开始
//		
//		六．游戏所需要制作的元素
//		1.开始界面（包括开始游戏按钮）
//		2.两张游戏地图设计（第一关跟第二关）
//		3.游戏界面UI设计（包括退出按钮，静音按钮，倒计时栏）
//		4.过关界面（包括继续游戏按钮跟退出游戏按钮），通关界面（重新开始按钮跟退出游戏按钮），失败界面（重新游戏按钮跟退出游戏按钮）
//		5.角色4方向移动动画，拾取道具动画，死亡动画，过关动画
//		6.3个怪物的四方向移动动画，冰冻动画，死亡动画

		private var game:Game;
		public static var qLoader:QueueLoader = new QueueLoader();
		public static var application:Application;
		
		public function Main()
		{
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.quality = StageQuality.HIGH;
			
			game = new Game(this);
			onResize(null);
			initialize();
		}
		
		private function initialize():void
		{
			stage.addEventListener(Event.RESIZE, onResize);
		}
		
		private var b:Boolean = false;
		protected function onResize(event:Event):void
		{
			if ((stage.stageWidth|stage.stageHeight) > 0 && !b)
			{
				b = true;
				stage.removeEventListener(Event.RESIZE, onResize);
				Main.application = new Application(stage.stageWidth, stage.stageHeight);
				addChild(Main.application);
				startLoading();
			}
		}
		
		private function startLoading():void
		{
			qLoader.addQueue(new QueueVo("素材库文件加载：", ".swf", "SWFLibrary", ApplicationDomain.currentDomain), DataCollection.config + "SWFLibrary.swf");
			qLoader.addQueue(new QueueVo("xml配置文件加载：", ".xml", "role"), DataCollection.config + "role.xml");
			qLoader.addQueue(new QueueVo("xml配置文件加载：", ".xml", "map"), DataCollection.config + "map.xml");
			qLoader.addEventListener(QueueLoaderEvent.ITEM_PROGRESS, onLoadProgress);
			qLoader.addEventListener(QueueLoaderEvent.ITEM_COMPLETE, onComplete);
			qLoader.addEventListener(QueueLoaderEvent.QUEUE_COMPLETE, onQueenComplete);
			qLoader.queueLoadStart(); //开始执行加载
		}
		
		protected function onLoadProgress(event:QueueLoaderEvent):void
		{
			event.queueVo.queueName;
		}
		
		protected function onComplete(event:QueueLoaderEvent):void
		{
			
			 if (event.queueVo.textureId == "role")
			{
				DataCollection.xmlRole(event.content);
			}else if (event.queueVo.textureId == "map")
			{
				DataCollection.xmlMap(event.content);
				
			}else if (event.queueVo.textureId == "SWFLibrary")
			{
				trace("素材文件加载完成。");
			}
		}
		
		protected function onQueenComplete(event:Event):void
		{
			game.startGame();
		}
	}
}